package wodegua.d18_collection;

/**
 * 1、ArrayList集合的底层原理
 * ●基于数组实现的。
 * 数组的特点
 * 查询快、增删慢
 *
 * 查询速度快(注意:是根据索引查询数据快):查询数据通过地址值和索引定位，查询任意数据耗时相同。
 * 删除效率低:可能需要把后面很多的数据进行前移。
 * 添加效率极低:可能需要把后面很多的数据后移，再添加元素;或者也可能需要进行数组的扩容。
 */

/**
 * 1、ArrayList集合的底层原理
 * ① 利用无参构造器创建的集合，会在底层创建一个默认长度为0的数组②) 添加第一个元素时，底层会创建一个新的长度为10的数组
 * ③ 存满时，会扩容1.5倍
 * ④如果一次添加多个元素，1.5倍还放不下，则新创建数组的长度以实际为准
 */

/**
 * 2、ArrayList集合适合的应用场景
 * 1、ArrayList适合:根据索引查询数据比如根据随机索引取教据(高效)!或者数据量不是很大时!
 */
public class ArrayListTest {
    public static void main(String[] args) {

    }
}
